import dbm
from functools import reduce
# 使用dbm读写的速度测试
# 100000条数据的时间为212秒
'''
Python支持很多DBM模块。因为历史原因，有很多dbm库，而且这些库是不兼容的。然而dbm模块是一个方便选择，可以避免选择特定的dbm模块。可以让dbm模块自己做出选择。
dbm 选择最好的dbm模块
dbm.dumb 使用dbm库的一个简单但可移植的实现
dbm.gnu 使用GNU dbm库

'''
dbfile = "dbfile/Bookmark"
db = dbm.open(dbfile, "c")


def test(i, w):
    keys = "MyBlog" + str(i)
    values = "xujiang5.xicp.io:5000" + str(w)
    db[keys] = values
    value = db["MyBlog" + str(i)]
    return i


import time
start = time.time()
print(start)
reduce(test, range(1, 100000))
end = time.time()
print(end)
print(end - start)

db.close()

print(b'fable'.decode('utf-8'))  #转换成普通的字符串
print('fable'.encode(encoding='utf-8'))  #转换成字节字符串

#通过这样来查找一个键是否存在
if 'fable'.encode(encoding='utf-8') in db.keys():
    print(db['fable'])
else:
    print('no fable')

print(db.keys())
